The concept of cloud computing refers to computer architectures wherein computer processes conventionally located on client terminals of users of a business, or on servers of the business, are relocated to remote servers. Remote hardware resources, distributed across the world, are thus accessed on demand via the Internet to create services that can be accessed online by users. Applications and data are no longer found on the local computer of the user, or on the server situated in the business of this user, but rather in a cloud composed of a certain number of interconnected remote servers.
There are many kinds of services offered based on architectures of this kind. Different cloud computing service models thus exist. A first model is thus known called SaaS (from the English Software-as-a-Service), wherein a provider of a cloud computing architecture solution makes a complete software stack, from the hardware to the applications, available to the user. A second model is known called PaaS (from the English Platform-as-a-Service), wherein the users deploy their own applications using environments and tools made available by the cloud provider. Finally, a third model is known called IaaS (from the English Infrastructure-as-a-Service), wherein the cloud computing provider makes computation, communication or storage resources available to the users. The users can then deploy and execute any software program, including their own operating system, which operates using the resources thus made available. Several models of cloud computing architecture deployment can also be discerned: a public model, a private model, a community model and a hybrid model. With the public cloud model, the resources are made available by a solutions provider and accessible via the Internet. The private cloud model is operated for the purposes of a single organization. The community cloud model is made available to several organizations that share a common problem. Finally, the hybrid cloud is composed of different public, private, or community cloud architectures. This last type of model is also called an inter-cloud infrastructure.
A cloud computing architecture generally relies on a plurality of physical machines interconnected by a network. These machines are generally grouped into one or more server farms (the term usually used is the English term datacenter) distributed geographically and connected by way of the Internet, or by a private network. In this architecture an inter-farm network can then be discerned, which connects the server farms to each other, and an intra-farm network that connects the physical machines inside a farm. An inter-cloud architecture then corresponds to the networking of elementary cloud architectures, constructed above the interconnected server farms, each elementary cloud architecture being able to operate a particular model of deployment or service. The present invention is concerned with an inter-cloud architecture.
It will be understood that such an architecture can be fairly complex, in terms of types of coexisting networks, heterogeneity of equipment and services provided. It will also be understood that in terms of security management, such an architecture entails a very high level of complexity.
From the security point of view, it is conventional in a cloud computing architecture for physical and virtual resources to be organized and supervised by security domains. A security domain groups together a plurality of resources to be protected and supervised, and security rules to be applied to the resources of the domain to ensure secure operation within the domain. The resources can be grouped into a domain according to different criteria: according to whether they relate to one and the same functionality, for example access control, according to whether they belong to one and the same organization, according to whether they are situated inside one and the same physical boundary, etc. In the latter case, a security domain can group together the resources of a physical machine, of a farm or of a cloud architecture. A security domain, for example the security domain associated with access control, comprises user resources to be protected and supervised, for example a password entry application, just as it comprises resources associated with security components making it possible to guarantee the application of security rules to the resources of the domain. The security components can provide detection or reaction functions and comprise for example firewalls, intrusion detection systems, intrusion prevention systems, etc.
Moreover, it is also conventional for a cloud architecture to be divided into different execution layers. In this model, it is possible to discern a physical layer, which for example comprises computing, storage or other resources, a virtualization layer that allows the management, i.e. the creation and release, of virtual machines, and a virtual layer that comprises virtual machines. Among the virtual machines, the “user” virtual machines can be distinguished from the “security” virtual machines.
This organization into domains and layers results in considerable complexity for an inter-cloud architecture, exposure to many security threats and extremely complex security management.
Security management solutions do exist. Some propose the layer-by-layer management of the security of an architecture. However, it is difficult for these solutions to manage the consistency between layers of different levels of abstraction. Others propose management of the security by domain. However, these solutions do not allow the management of security between different domains. In any case, such solutions are poorly suited to the complexity of inter-cloud architectures that can implement different security mechanisms in each of the cloud computing architectures that are part of the inter-cloud architecture.
There is currently no satisfactory solution enabling the management of the security of an inter-cloud architecture.